use std::result::Result;
use std::collections::HashMap;

#[test]
fn test_panic(){
    // panic!为不可恢复的错误，如果遇到panic程序会立即回滚并释放自动内存直到进程退出。
    panic!("sss");
}

#[test]
fn test_resoult(){
    // Resoult 允许调用方恢复错误
    println!("{:?}", get_map_name("dss"));
    println!("{:?}", get_map_name("name"));
    println!("{:?}", get_map_name("age"));
    println!("{:?}", get_map_name("sd").unwrap_or("sdd"));

}

fn get_map_name(name:&str) -> Result<&str,&str> {
    let mut map = HashMap::new();

    map.insert("name", "james");
    map.insert("age", "24");

    if let Some(x) = map.get(name) {
        Ok(x)
    }else {
        Err("not found.")
    }
}
